home *** CD-ROM | disk | FTP | other *** search
/ Transactor / Transactor_05_1985_Transactor_Publishing.d64 / keywiz 64 (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  11KB  |  192 lines

  1. 0 rem the transactor volume 5 issue 06  page 29
  2. 10 rem ********************************
  3. 14 rem ** an amazing keyboard driver **
  4. 16 rem **** for your commodore 64  ****
  5. 18 rem *** aubrey stanley  dec 1984 ***
  6. 20 rem ********************************
  7. 22 rem **
  8. 50 tb$="kernel":pg$="kprg":rem *tells loader how to load kwiz*
  9. 52 i=53216:nk=2:rem *irq address & n-key rollover count*
  10. 54 if tb$="kernel" and pg$="kprg" then 100:rem *use kernel tables & data lines*
  11. 56 if ft>1 then 100:rem *program and table files loaded from disk*
  12. 58 if ft=1 then 62:rem *program file loaded from disk*
  13. 60 ft=1:if pg$<>"kprg" then pg=1:load "0:"+pg$,8,1: rem *load program file*
  14. 62 ft=2:if tb$<>"kernel" then tb=128:load "0:"+tb$,8,1:rem *load table file*
  15. 64 goto 100
  16. 65 rem ********************************
  17. 70 rem *save program, type - run 70*
  18. 72 pg$="kwiz":rem *program file name*
  19. 74 ad=41216:bd=49152:n=2400:rem *prog address, saved from address, byte count*
  20. 76 open 2,8,2,"@0:"+pg$+",p,w"
  21. 78 goto 88
  22. 79 rem ************
  23. 80 rem *save tables, type - run 80*
  24. 82 tb$="kwiz.tb":rem *table file name*
  25. 84 ad=47072:bd=49152:n=2080:rem *table address, saved from address, byte count*
  26. 86 open 2,8,2,"@0:"+tb$+",p,w"
  27. 88 print#2,chr$(ad-int(ad/256)*256);
  28. 90 print#2,chr$(ad/256);
  29. 92 for i=0 to n-1
  30. 94 print#2,chr$(peek(bd+i));
  31. 96 next i
  32. 98 close 2:end
  33. 99 rem ********************************
  34. 100 for n=0 to 23:rem *poke irq vector code block*
  35. 102 read a:poke i+n,a:next
  36. 104 if pg=1 then 112:rem *bypass program pokes if program loaded from disk*
  37. 106 for j=41216 to 43615:rem *poke program code block*
  38. 108 read a:poke j,a:next
  39. 112 poke 41216,tb:rem *tells program whether tables are loaded from disk*
  40. 116 poke 41218,nk:rem *tells program the n-key factor*
  41. 118 poke 56334,peek(56334)and254:rem *disable keyboard (timer) interrupt*
  42. 120 poke 788,(i-int(i/256)*256):rem *set up irq vector address low byte*
  43. 122 poke 789,(i/256):rem *set up irq vector high byte*
  44. 124 poke 56334,peek(56334)or1:rem *enable keyboard (timer) interrupt
  45. 126 end:rem *of loading*
  46. 128 rem *******************************
  47. 200 data32,35,234,165,1,41,254,133,1,32,39,161,165,1,9,1,133
  48. 201 data1,76,126,234,0,90,32
  49. 250 rem *******************************
  50. 300 data0,0,2,0,184,0,185,0,186,0,187,254,253,251,247,239,223
  51. 301 data191,127,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0
  52. 302 data0,0,0,0,0,44,1,161,48,62,32,185,163,169,128,141,1
  53. 303 data161,169,46,160,165,141,143,2,140,144,2,169,0,133,198,141,141
  54. 304 data2,141,142,2,141,27,161,141,30,161,141,37,161,141,38,161,169
  55. 305 data64,133,203,133,197,141,28,161,141,29,161,169,255,162,7,157,19
  56. 306 data161,202,16,250,32,110,163,173,38,161,208,17,173,30,161,208,20
  57. 307 data169,0,141,0,220,173,1,220,201,255,208,8,162,254,32,55,163
  58. 308 data76,150,161,169,8,141,31,161,32,156,161,32,207,162,169,127,141
  59. 309 data0,220,96,206,31,161,16,1,96,174,31,161,189,11,161,141,0
  60. 310 data220,173,1,220,205,1,220,208,248,93,19,161,141,32,161,172,32
  61. 311 data161,240,222,174,31,161,136,152,45,32,161,168,77,32,161,141,33
  62. 312 data161,140,32,161,93,19,161,45,33,161,141,34,161,240,15,206,30
  63. 313 data161,173,33,161,93,19,161,29,19,161,76,7,162,173,30,161,205
  64. 314 data2,161,176,199,173,141,2,41,3,201,3,240,190,238,30,161,173
  65. 315 data33,161,93,19,161,61,19,161,157,19,161,173,31,161,10,10,10
  66. 316 data168,173,33,161,162,255,142,36,161,238,36,161,74,144,250,152,77
  67. 317 data36,161,141,36,161,10,10,168,173,3,161,133,245,173,4,161,133
  68. 318 data246,177,245,170,172,36,161,224,5,176,76,224,3,240,72,77,141
  69. 319 data2,141,141,2,141,142,2,41,4,240,34,173,141,2,41,2,240
  70. 320 data11,169,128,77,138,2,141,138,2,76,185,161,173,141,2,41,1
  71. 321 data240,31,77,37,161,141,37,161,76,185,161,173,141,2,41,3,201
  72. 322 data3,208,13,173,145,2,48,8,173,24,208,73,2,141,24,208,76
  73. 323 data185,161,173,34,161,240,29,196,197,208,6,169,64,133,203,133,197
  74. 324 data152,160,2,136,48,10,217,28,161,208,248,169,64,153,28,161,76
  75. 325 data185,161,32,76,163,169,64,172,27,161,173,36,161,153,28,161,152
  76. 326 data73,1,141,27,161,169,16,141,140,2,169,4,141,139,2,32,48
  77. 327 data163,76,185,161,173,30,161,240,91,173,141,2,41,3,201,3,240
  78. 328 data82,44,138,2,48,2,112,75,173,140,2,240,5,206,140,2,208
  79. 329 data65,206,139,2,208,60,169,4,141,139,2,169,2,141,35,161,206
  80. 330 data35,161,48,45,174,35,161,189,28,161,201,64,240,241,141,36,161
  81. 331 data32,76,163,44,138,2,48,18,41,127,201,20,240,12,201,32,240
  82. 332 data8,201,29,240,4,201,17,208,212,32,48,163,76,253,162,96,173
  83. 333 data36,161,133,203,133,197,108,143,2,224,224,176,13,138,166,198,236
  84. 334 data137,2,176,5,157,119,2,230,198,96,173,36,161,10,10,168,173
  85. 335 data141,2,10,201,8,144,2,169,6,170,189,3,161,133,245,189,4
  86. 336 data161,133,246,177,245,170,172,36,161,96,32,234,255,165,204,208,41
  87. 337 data198,205,208,37,169,20,133,205,164,211,70,207,174,135,2,177,209
  88. 338 data176,17,230,207,133,206,32,36,234,177,243,141,135,2,174,134,2
  89. 339 data165,206,73,128,32,28,234,165,1,41,16,240,10,160,0,132,192
  90. 340 data165,1,9,32,208,8,165,192,208,6,165,1,41,31,133,1,96
  91. 341 data173,0,161,208,44,162,63,189,129,235,157,0,160,202,16,247,162
  92. 342 data63,189,194,235,157,64,160,202,16,247,162,63,189,3,236,157,128
  93. 343 data160,202,16,247,162,63,189,120,236,157,192,160,202,16,247,173,0
  94. 344 data161,16,3,76,116,164,162,228,142,199,160,232,142,194,160,232,142
  95. 345 data255,160,232,142,252,160,232,142,192,160,232,142,193,160,232,142,243
  96. 346 data160,169,0,133,245,169,184,133,246,32,117,164,189,0,160,145,245
  97. 347 data136,136,136,136,202,16,244,169,0,133,245,169,185,133,246,32,117
  98. 348 data164,189,64,160,145,245,136,136,136,136,202,16,244,169,0,133,245
  99. 349 data169,186,133,246,32,117,164,189,128,160,145,245,136,136,136,136,202
  100. 350 data16,244,169,0,133,245,169,187,133,246,32,117,164,189,192,160,145
  101. 351 data245,136,136,136,136,202,16,244,162,31,138,157,224,183,202,16,249
  102. 352 data96,160,255,169,0,145,245,136,16,251,162,63,160,252,96,252,167
  103. 353 data79,165,78,165,235,167,105,165,119,166,16,167,43,168,120,168,158
  104. 354 data168,139,168,78,165,78,165,78,165,78,165,78,165,78,165,78,165
  105. 355 data78,165,78,165,78,165,78,165,78,165,78,165,78,165,78,165,78
  106. 356 data165,78,165,78,165,78,165,78,165,78,165,0,0,188,189,190,191
  107. 357 data83,84,82,73,78,71,32,63,157,67,79,78,71,73,71,32,63
  108. 358 data157,85,83,69,82,32,63,157,32,65,76,76,32,85,83,69,68
  109. 359 data32,85,78,68,79,78,69,32,79,46,75,46,78,85,76,76,32
  110. 360 data75,69,89,32,65,66,79,82,84,83,65,86,69,32,80,71,83
  111. 361 data65,86,69,32,84,66,157,95,254,226,157,255,1,255,228,0,184
  112. 362 data8,0,185,30,224,191,46,165,78,165,0,0,0,0,0,0,32
  113. 363 data52,165,76,58,163,138,224,224,176,2,169,224,41,31,10,168,185
  114. 364 data131,164,141,195,164,185,132,164,141,196,164,108,195,164,96,32,114
  115. 365 data169,32,188,169,174,24,165,36,157,16,242,169,78,141,38,165,169
  116. 366 data165,141,39,165,76,239,168,169,131,141,143,2,169,165,141,144,2
  117. 367 data169,201,133,245,169,164,133,246,169,9,32,226,168,76,78,170,224
  118. 368 data254,240,110,176,8,224,227,176,107,224,13,240,113,32,114,169,32
  119. 369 data133,169,32,188,169,173,26,165,201,226,240,87,32,152,169,169,0
  120. 370 data141,22,165,224,225,240,47,160,32,136,16,16,169,226,133,245,169
  121. 371 data164,133,246,169,9,32,226,168,76,98,166,185,224,183,201,255,240
  122. 372 data230,141,21,165,142,20,165,169,255,153,224,183,169,225,141,19,165
  123. 373 data32,226,169,174,20,165,224,255,208,3,32,8,170,32,58,163,169
  124. 374 data18,141,143,2,169,166,141,144,2,162,61,76,58,163,162,63,32
  125. 375 data58,163,162,157,76,58,163,169,255,133
  126. 400 data245,169,164,133,246,169,6,32,226,168,76,98,166,224,254,240,41
  127. 401 data224,227,176,222,224,225,208,9,32,114,169,32,188,169,174,24,165
  128. 402 data224,13,240,26,173,21,165,32,207,168,172,22,165,138,145,245,200
  129. 403 data238,22,165,192,32,240,3,76,58,163,32,58,163,173,22,165,208
  130. 404 data18,173,21,165,168,153,224,183,173,20,165,141,19,165,32,22,170
  131. 405 data208,3,32,36,170,32,226,169,173,40,165,141,138,2,169,46,141
  132. 406 data143,2,169,165,141,144,2,162,141,76,58,163,169,145,141,143,2
  133. 407 data169,166,141,144,2,169,210,133,245,169,164,133,246,169,9,32,226
  134. 408 data168,76,78,170,224,254,240,68,176,7,224,225,144,3,76,248,165
  135. 409 data224,13,208,3,76,2,166,32,114,169,32,133,169,32,188,169,32
  136. 410 data152,169,173,22,165,201,226,240,8,142,20,165,169,226,141,22,165
  137. 411 data174,20,165,224,255,208,3,32,8,170,32,58,163,169,220,141,143
  138. 412 data2,169,166,141,144,2,162,61,76,58,163,224,254,240,249,224,227
  139. 413 data144,3,76,248,165,32,114,169,32,188,169,224,225,240,7,173,26
  140. 414 data165,201,226,208,3,174,24,165,224,13,208,8,169,0,141,22,165
  141. 415 data76,81,166,142,19,165,32,58,163,76,92,166,169,42,141,143,2
  142. 416 data169,167,141,144,2,169,219,133,245,169,164,133,246,169,7,32,226
  143. 417 data168,76,78,170,224,254,240,82,176,18,224,224,144,7,224,227,240
  144. 418 data10,76,248,165,224,13,208,3,76,2,166,32,114,169,32,133,169
  145. 419 data32,188,169,32,152,169,224,227,240,8,142,20,165,169,227,141,19
  146. 420 data165,169,0,141,21,165,141,22,165,174,20,165,224,255,208,3,32
  147. 421 data8,170,32,58,163,169,0,141,41,165,169,131,141,143,2,169,167
  148. 422 data141,144,2,162,61,76,58,163,224,254,240,249,224,228,144,3,76
  149. 423 data248,165,224,225,144,9,32,114,169,32,188,169,174,24,165,224,13
  150. 424 data208,3,76,81,166,138,201,48,144,65,201,64,240,61,144,7,201
  151. 425 data71,176,55,24,105,9,41,15,238,41,165,172,41,165,192,4,240
  152. 426 data8,192,2,240,4,10,10,10,10,192,3,176,9,13,22,165,141
  153. 427 data22,165,76,223,167,13,21,165,141,21,165,192,4,240,3,76,58
  154. 428 data163,32,58,163,76,92,166,76,248,165,32,114,169,32,188,169,174
  155. 429 data24,165,36,157,16,3,108,25,165,96,36,157,16,18,169,1,45
  156. 430 data37,161,240,11,224,20,208,8,162,29,32,58,163,162,20,96,224
  157. 431 data32,144,19,224,128,144,4,224,160,144,11,142,20,165,162,148,32
  158. 432 data58,163,174,20,165,96,36,157,16,72,169,183,160,224,162,192,44
  159. 433 data42,165,48,6,169,161,160,0,162,171,133,252,132,251,169,192,133
  160. 434 data254,160,0,132,253,177,251,145,253,200,208,249,230,252,230,254,228
  161. 435 data252,208,241,44,42,165,48,10,169,0,141,1,192,32,50,170,208
  162. 436 data3,32,64,170,169,128,77,42,165,141,42,165,162,141,96,36,157
  163. 437 data16,14,172,43,165,136,16,2,160,15,140,43,165,140,33,208,96
  164. 438 data36,157,16,14,172,45,165,136,16,2,160,15,140,45,165,140,32
  165. 439 data208,96,36,157,16,42,172,44,165,136,16,2,160,15,140,44,165
  166. 440 data140,134,2,152,160,216,132,246,160,0,132,245,145,245,200,208,4
  167. 441 data230,246,208,247,192,232,208,243,166,246,224,219,208,237,162,255,96
  168. 442 data168,10,10,10,10,10,133,245,152,74,74,74,168,185,197,164,133
  169. 443 data246,96,141,41,165,160,0,32,10,169,208,251,162,255,96,173,26
  170. 444 data165,141,41,165,173,25,165,32,207,168,160,0,76,27,169,32,10
  171. 445 data169,208,248,162,255,108,38,165,177,245,201,141,208,2,169,13,170
  172. 446 data32,58,163,200,206,41,165,96,165,198,205,137,2,144,222,165,245
  173. 447 data141,34,165,165,246,141,35,165,140,33,165,173,143,2,141,36,165
  174. 448 data173,144,2,141,37,165,169,77,141,143,2,169,169,141,144,2,162
  175. 449 data255,142,38,161,76,58,163,165,198,208,244,173,34,165,133,245,173
  176. 450 data35,165,133,246,172,33,165,173,36,165,141,143,2,173,37,165,141
  177. 451 data144,2,169,0,141,38,161,76,0,169,173,36,161,10,10,141,30
  178. 452 data165,165,245,141,31,165,165,246,141,32,165,96,173,30,165,141,27
  179. 453 data165,173,31,165,141,28,165,173,32,165,141,29,165,96,173,23,165
  180. 454 data141,19,165,173,24,165,141,20,165,173,25,165,141,21,165,173,26
  181. 455 data165,141,22,165,96,173,28,165,133,245,173,29,165,133,246,96,173
  182. 456 data31,165,133,245,173,32,165,133,246,173,30,165,168,177,245,141,23
  183. 457 data165,200,177,245,141,24,165,200,177,245,141,25,165,200,177,245,141
  184. 458 data26,165,96,173,28,165,133,245,173,29,165,133,246,173,27,165,168
  185. 459 data173,19,165,145,245,200,173,20,165,145,245,200,173,21,165,145,245
  186. 460 data200,173,22,165,145,245,96,169,247,133,245,169,164,133,246,169,8
  187. 461 data32,226,168,96,169,235,133,245,169,164,133,246,169,7,32,226,168
  188. 462 data96,169,242,133,245,169,164,133,246,169,5,32,226,168,96,169,5
  189. 463 data133,245,169,165,133,246,169,7,32,226,168,96,169,12,133,245,169
  190. 464 data165,133,246,169,7,32,226,168,96,173,138,2,141,40,165,169,64
  191. 465 data141,138,2,96,1,255,1,255,1,255
  192.